package com.woniu.controller.operation;

import com.woniu.controller.BaseController;
import com.woniu.entity.Result;
import com.woniu.pojo.Admin;
import com.woniu.service.IAdminService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.Map;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author long
 * @since 2022-10-19
 */
@RestController
@RequestMapping("/admin")
@Api(tags = "后台系统登录")
@Slf4j
public class AdminController extends BaseController {

    @Autowired
    private IAdminService adminService;

    @ApiOperation("后台登录")
    @PostMapping("/login")
    public Result login(@RequestBody Map<String,String> params){
        //1.获取参数
        String account = params.get("account");
        String password = params.get("password");
        //2.对参数进行非空校验
        if(StringUtils.isEmpty(account)){
            return error();
        }
        if(StringUtils.isEmpty(password)){
            return error();
        }
        //3.调用方法进行登录操作，即是查询数据，如果查到就表明登录成功，如果没查到就表明登录失败
        Admin admin=adminService.login(account,password);
        //4.向前端反馈数据
        if(admin==null){
            return error();
        }
        Map<String,String> map=new HashMap<>();
        map.put("token",account);
        return toDataResult(map);
    }


    @ApiOperation("根据令牌获取登录用户信息")
    @GetMapping("/info")
    public Result getInfo(String token){
        //1.获取参数
        log.debug("进入到获取用户数据的方法====");
        log.debug(token);
        //2.对参数进行非空校验 TODO
        //3.对返回数据进行封装
        Map<String,Object> map=new HashMap<>();
        map.put("name",token);
        map.put("avatar", "https://img1.baidu.com/it/u=2838100141,2488760005&fm=253&app=138" +
                "&size=w931&n=0&f=JPEG&fmt=auto?sec=1663520400&t=7091611ba73832e3566f237c4e9a09ed");
        map.put("roles", new String[]{"admin", "teacher", "student"});
        //4.将数据进行返回
        return toDataResult(map);
    }

    @ApiOperation("退出后台")
    @PostMapping("/logout")
    public Result logout(){
        log.debug("进入了退出系统的方法");
        return success();
    }





}
